home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2007 December / PCWKCD1207B.iso / Blogowanie poza sfera / Flock 0.9.1.3 stable / flock-0.9.1.3.en-US.win32.exe / flock / components / flockXPCOMTemplate.js.lib < prev    next >
Text File  |  2007-10-12  |  3KB  |  95 lines

  1. // boiler-plate xpcom module
  2. // vim: cindent filetype=javascript
  3. //
  4. // BEGIN FLOCK GPL
  5. // 
  6. // Copyright Flock Inc. 2005-2007
  7. // http://flock.com
  8. // 
  9. // This file may be used under the terms of of the
  10. // GNU General Public License Version 2 or later (the "GPL"),
  11. // http://www.gnu.org/licenses/gpl.html
  12. // 
  13. // Software distributed under the License is distributed on an "AS IS" basis,
  14. // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  15. // for the specific language governing rights and limitations under the
  16. // License.
  17. // 
  18. // END FLOCK GPL
  19. //
  20.  
  21.  
  22. const WEB_SERVICE_CATEGORY = 'flock-favorites-web-service';
  23.  
  24.  
  25. // JavaScript XPCOM Boilerplate /*{{{*/
  26. function xpcomModule (aCID, aContractId, aComponentName, aConstructor) {
  27.     this.mCID = Components.ID (aCID);
  28.     this.mContractId = aContractId;
  29.     this.mComponentName = aComponentName;
  30.     this.mConstructor = aConstructor;
  31.     this.mGlobalJavascript = null;
  32.     this.mFavoritesWebService = null;
  33.  
  34.     // factory object
  35.     this.mFactory = {
  36.         constructor: this.mConstructor,
  37.         createInstance: function (aOuter, aIID) {
  38.             if (aOuter != null) {
  39.                 throw Components.results.NS_ERROR_NO_AGGREGATION;
  40.             }
  41.  
  42.             return (new (this.constructor) ()).QueryInterface (aIID);
  43.         }
  44.     };
  45.  
  46. }
  47. xpcomModule.prototype = {
  48.     setGlobalJavaScript: function (aGlobalJavaScript) {
  49.         this.mGlobalJavaScript = aGlobalJavaScript;
  50.     },
  51.  
  52.     setFavoritesWebService: function (aFavoritesWebService) {
  53.         debug ('setFavoritesWebService("'+aFavoritesWebService+'")\n');
  54.         this.mFavoritesWebService = aFavoritesWebService;                                    
  55.     },
  56.  
  57.     // the module should register itself
  58.     registerSelf: function (aCompMgr, aLocation, aLoaderStr, aType) {
  59.         aCompMgr = aCompMgr.QueryInterface (
  60.                 Components.interfaces.nsIComponentRegistrar);
  61.         aCompMgr.registerFactoryLocation (this.mCID, this.mComponentName, 
  62.                 this.mContractId, aLocation, aLoaderStr, aType);
  63.  
  64.         var catmgr = Components.classes["@mozilla.org/categorymanager;1"]
  65.             .getService (Components.interfaces.nsICategoryManager);
  66.         if (this.mGlobalJavaScript) {
  67.             catmgr.addCategoryEntry ("JavaScript global property",
  68.                     this.mGlobalJavaScript, this.mContractId, true, true);
  69.         }
  70.  
  71.         if (this.mFavoritesWebService) {
  72.             debug ('adding category entry in "'+WEB_SERVICE_CATEGORY+'"\n');
  73.             catmgr.addCategoryEntry (WEB_SERVICE_CATEGORY,
  74.                     this.mFavoritesWebService, this.mContractId, true, true);
  75.         }
  76.     },
  77.  
  78.     // get the factory                  
  79.     getClassObject: function (aCompMgr, aCID, aIID) {
  80.         if (!aCID.equals (this.mCID)) {
  81.             throw Components.results.NS_ERROR_NO_INTERFACE;
  82.         }
  83.  
  84.         if (!aIID.equals (Components.interfaces.nsIFactory)) {
  85.             throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
  86.         }
  87.  
  88.         return this.mFactory;
  89.     },
  90.  
  91.     canUnload: function(compMgr) {
  92.         return true;
  93.     }
  94. };
  95.